 1.Kudu安装和运行之安装前提和准备
   
   硬件：
       一台或者多台机器跑kudu-master。建议跑一个master(无容错机制)、三个master(允许一个节点运行出错)或者
五个master(允许两个节点出错)。
       一台或者多台机器跑kudu-tserver。当需要使用副本，至少需要三个节点运行kudu-tserver服务。
   
   操作系统(主要是linux系统，windows系统不支持)：
       RHEL 6,RHEL 7,CentOS 6,CentOS 7,Ubuntu 14.04(Trusty),Ubuntu 16.04(Xenial),Debian 8(Jessie),or SLES 12。
	   内核和文件系统支持 hole punching 选项。
       ntp服务。
       xfs or ext4 formatted drives
   
   存储：
       尽量使用固态存储，将显著提高kudu性能。
   管理
       如果你使用的是CDH，需要Cloudera Manager 5.4.3 及以上的版本。

 2.环境说明
   
   os：CentOS Linux release 7.6.1810(Core)
   linux121 linux122 linux123 三台机器 linux121启动Master linux121,linux122,linux123 启动tserver

 3.安装ntp服务
   
   每个节点执行：
   yum -y install ntp
       注释掉以下四行：
       #server 0.centos.pool.ntp.org iburst
       #server 1.centos.pool.ntp.org iburst
       #server 2.centos.pool.ntp.org iburst
       #server 3.centos.pool.ntp.org iburst
   
   修改linux122 192.168.71.101 节点上的配置文件
   vi /etc/ntp.conf
   加入如下内容
restrict 192.168.71.0 mask 255.255.255.0 notrap nomodify  
# 给192.168.71.0 网段,子网掩码为255.255.255.0 的局域网机的机器有同步时间的权限
server 192.168.71.101  prefer                             
# prefer代表优先使用此ip做同步
server 127.127.1.0                                        
# 当所有服务器都不能使用时，使用本机作为同步服务器
fudge  127.127.1.0 stratum 10

   修改192.168.71.100 和 192.168.71.102 节点上的配置文件
   vi /etc/ntp.conf
   
   加入以下内容
server 192.168.71.101 prefer
server 127.127.1.0
fudge  127.127.1.0 stratum 10

   1).启动NTP服务
   service ntpd start
   service ntpd status
   chkconfig ntpd on
   2).检验
   检查ntp服务是否成功输入：ntpstat
   输出如下则启动成功并且同步已完成
   synchronised to local net at stratum 11
   time correct to within 11 ms
   polling server every 64 s  
   
   # /etc/init.d/ntpd start 各个节点检查启动成功，否则启动kudu相关服务会报错

 4.时钟同步，kudu对时间要求很精准
   
   [root@linux121 kudu]# ntpdate -u ntp.api.bz
1 Sep 16:37:25 ntpdate[13780]: adjust time server 114.118.7.161 offset -0.011283 sec
[root@linux121 kudu]# systemctl status ntpd.service
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2020-09-01 02:07:39 CST; 14h ago
Main PID: 13476 (ntpd)
CGroup: /system.slice/ntpd.service
└─13476 /usr/sbin/ntpd -u ntp:ntp -g
Sep 01 02:07:39 linux121 ntpd[13476]: Listen normally on 3 ens33 192.168.71.100 UDP 123
Sep 01 02:07:39 linux121 ntpd[13476]: Listen normally on 4 lo ::1 UDP 123
Sep 01 02:07:39 linux121 ntpd[13476]: Listen normally on 5 ens33 fe80::20c:29ff:fef6:11ed UDP
123
Sep 01 02:07:39 linux121 ntpd[13476]: Listening on routing socket on fd #22 for interface
updates
Sep 01 02:07:50 linux121 ntpd[13476]: 0.0.0.0 c016 06 restart
Sep 01 02:07:50 linux121 ntpd[13476]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
Sep 01 02:07:50 linux121 ntpd[13476]: 0.0.0.0 c011 01 freq_not_set
Sep 01 02:07:57 linux121 ntpd[13476]: 0.0.0.0 c61c 0c clock_step +51374.863232 s
Sep 01 16:24:12 linux121 ntpd[13476]: 0.0.0.0 c614 04 freq_mode
Sep 01 16:24:13 linux121 ntpd[13476]: 0.0.0.0 c618 08 no_sys_peer

 5.配置Yum的Repository
   
   在使用 yum来安装kudu的时候，由于kudu不是yum的常规组建，直接安装会找不到kudu，所以第一步需要将
kudu的repo文件下载并放置到合适的位置。
   1).下载kudu的repo文件 下载repo文件： wget
http://archive.cloudera.com/kudu/redhat/7/x86_64/kudu/cloudera-kudu.repo
   可以直接从地址下载
   2).将下载的repo文件放置到/etc/yum.repos.d/目录下   
   sudo mv cloudera-kudu.repo  /etc/yum.repos.d/

 6.安装kudu
   
   1).安装，在每个节点上执行
   # yum install kudu kudu-master kudu-client0 kudu-client-devel kudu-tserver -y
   2).配置并启动kudu
   3).linux122: master linux121,linux122,linux123 slaver   
   安装完成，在/etc/kudu/conf目录下有两个文件：master.gflagfile和tserver.gflagfile
使用192.168.71.101 作为kudu-master，192.168.71.100、192.168.71.101 和 192.168.71.102 作为kudu-
tserver节点
   所以192.168.71.101 节点需要修改master.gflagfile和tserver.gflagfile文件，而192.168.71.100 和
192.168.71.102 只需要修改 tserver.gflagfile文件 
       修改kudu-master启动配置 linux122 节点
	   vi /etc/default/kudu-master
	   修改以下内容，主要是修改ip：
	   export FLAGS_rpc_bind_addresses=192.168.71.101:7051
       修改每个节点的kudu-tserver启动配置
	   vim /etc/default/kudu-tserver
	   修改以下内容，主要是修改ip为当前节点ip
	   export FLAGS_rpc_bind_addresses=192.168.71.101:7050
	   master.gflagfile的配置修改
--fromenv=rpc_bind_addresses
--fromenv=log_dir
--fs_wal_dir=/var/lib/kudu/master
--fs_data_dirs=/var/lib/kudu/master
-unlock_unsafe_flags=true
-allow_unsafe_replication_factor=true
# 此参数可以调整备份数量，默认为3
-'default_num_replicas'=1                 
       
	   tserver.gflagfile 的配置修改
# Do not modify these two lines. If you wish to change these variables,
# modify them in /etc/default/kudu-tserver.
--fromenv=rpc_bind_addresses
--fromenv=log_dir
--fs_wal_dir=/var/lib/kudu/tserver
--fs_data_dirs=/var/lib/kudu/tserver

-unlock_unsafe_flags=true
-allow_unsafe_replication_factor=true
-'default_num_replicas'=1
--'tserver_master_addrs'=192.168.71.101:7051  # 此参数指定master	   
       
	   注意，这里的–tserver_master_addrs指明了集群中master的地址，指向同一个master的tserver形成了一
个kudu集群
       创建master.gflagfile和tserver.gflagfile文件中指定的目录，并将所有者更改为kudu，执行如下命令：
	   mkdir -p /var/lib/kudu/master 
	   mkdir -p /var/lib/kudu/tserver
       chown -R kudu:kudu /var/lib/kudu/
	   修改 /etc/security/limits.d/20-nproc.conf 文件，解除kudu用户的线程限制,注意：20可能不同，根据自
己的来修改
       vi /etc/security/limits.d/20-nproc.conf
	   加入以下两行内容
kudu       soft    nproc     unlimited
impala     soft    nproc     unlimited
       启动kudu
       master节点(linux122 192.168.71.101)执行：
	   service kudu-master start
       service kudu-tserver start
	   192.168.71.100 和 192.168.71.102执行：
	   service kudu-tserver start
  
   问题1：kudu-master启动失败:
   查看/var/log/kudu/err
   发现时间问题，解决方案，重启ntpd service ntpd restart
   然后重启kudu-master service kudu-master restart
	   